package 纯字符串;

public class No925长按键入 {

    /**
     * 你的朋友正在使用键盘输入他的名字 roleName。偶尔，在键入字符 c 时，
     * 按键可能会被长按，而字符可能被输入 1 次或多次。
     * 你将会检查键盘输入的字符 typed。
     * 如果它对应的可能是你的朋友的名字（其中一些字符可能被长按），那么就返回 True。
     *
     * 示例 1：
     * 输入：roleName = "alex", typed = "aaleex"
     * 输出：true
     * 解释：'alex' 中的 'a' 和 'e' 被长按。
     * 示例 2：
     * 输入：roleName = "saeed", typed = "ssaaedd"
     * 输出：false
     * 解释：'e' 一定需要被键入两次，但在 typed 的输出中不是这样。
     */

    public boolean isLongPressedName(String name,String typed) {

        char[] nameArr = name.toCharArray();
        char[] typedArr = typed.toCharArray();

        int one=0;
        int two=0;

        while (two<typedArr.length){

            if(one<nameArr.length&&nameArr[one]==typedArr[two]){
                one++;
                two++;
            }else if(two>0&&typedArr[two]==typedArr[two-1]){//好棋! 不等时再将two++
                two++;
            }else{
                return false;
            }

        }

        return one==name.length();
    }

    public static void main(String[] args) {
        No925长按键入 n=new No925长按键入();
        boolean result = n.isLongPressedName("saeed", "ssaaedd");
        System.out.println(result);
    }

}
